#ifndef AMDGPUMONITOR_H
#define AMDGPUMONITOR_H

#include <gpu_monitor_interface.h>
#include <string>

class AMDGpuMonitor : public GpuMonitorInterface
{
private:
    /**
     * @brief AMD设备路径
     */
    std::string gpu_dev_path;

    /**
     * @brief 查找AMD设备路径，遍历/sys/class/drm/
     */
    void find_amdgpu_path();


public:
    AMDGpuMonitor();

    std::optional<double> getGpuCoreUsage() override;
    std::optional<double> getGpuMemUsage() override;
    std::optional<double> getGpuCoreTemp() override;

};

#endif // AMDGPUMONITOR_H
